package com.etalk.crm.service;

import com.etalk.crm.pojo.KnowledgePointClassification;
import com.etalk.crm.pojo.StudentReportCustomizeDetail;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author Jordan
 */
public interface StudentReportCustomizeService {


    /**
     * 生成自定义学习报表
     * @param personId 学员id
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @param creator 结束时间
     * @return 记录数
     */
    int createReportByCustomize(int personId, Date startDate, Date endDate, String creator);

    /**
     * 生成阶段测试反馈
     * @param personId 学员id
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @param creator 创建人
     * @param record 反馈数据
     * @return
     */
    int createFeedback(int personId, Date startDate, Date endDate, String creator, StudentReportCustomizeDetail record);

    /**
     * 获取错词和知识点数据，掌握与未掌握分开
     * @param personId 学员id
     * @return
     */
    Map<String,Object> searchMistakeKnowledgeByPersonId(Integer personId);

    /**
     * 查询英语知识点列表选项
     * @param parentId 父级id
     * @return
     */
    List<KnowledgePointClassification> searchKnowledgePointClassificationListByParentId(int parentId);

    /**
     * 查询教材对应的知识点
     * @param textbookId 教材id
     * @return
     */
    List<String> searchKnowledgeListByTextbookId(int textbookId);

    /**
     * 根据年级查询学习建议的知识点分类
     * @param knowledgeId 学习建议知识点分类id
     * @return
     */
    List<Map<String,Object>> searchStudySuggestionsKnowledgeByKnowledgeId(int gradeId,List<Integer> knowledgeId);

    /**
     * 查询阶段检测反馈信息
     * @param id 反馈id
     * @return 信息
     */
    StudentReportCustomizeDetail searchFeedbackInfoById(int id);
}
